using System;
using System.Collections.Generic;
using System.Runtime.Serialization;
namespace Net35.Xrm.Sdk
{
	[DataContract(Name = "AliasedValue", Namespace = "http://schemas.microsoft.com/xrm/2011/Contracts"), KnownType("GetKnownAliasedValueTypes")]
	public sealed class AliasedValue : IExtensibleDataObject
	{
		private ExtensionDataObject _extensionDataObject;
		[DataMember]
		public string AttributeLogicalName
		{
			get;
			internal set;
		}
		[DataMember]
		public string EntityLogicalName
		{
			get;
			internal set;
		}
		[DataMember]
		public object Value
		{
			get;
			internal set;
		}
		internal bool NeedFormatting
		{
			get;
			set;
		}
		internal int ReturnType
		{
			get;
			set;
		}
		public ExtensionDataObject ExtensionData
		{
			get
			{
				return this._extensionDataObject;
			}
			set
			{
				this._extensionDataObject = value;
			}
		}
		public AliasedValue()
		{
		}
		public AliasedValue(string entityLogicalName, string attributeLogicalName, object value)
		{
			this.AttributeLogicalName = attributeLogicalName;
			this.EntityLogicalName = entityLogicalName;
			this.Value = value;
		}
		private static IEnumerable<Type> GetKnownAliasedValueTypes()
		{
			List<Type> list = new List<Type>();
			KnownTypesProvider.AddKnownAttributeTypes(list);
			return list;
		}
	}
}
